The Voice over Internet Protocol (VoIP) community has been developing and improving voice communications systems and applications implemented over the Internet, with the goal of providing, improving upon and expanding call services that are commonly available over public switched telephone networks (PSTNs) alone. Session Initiation Protocol (SIP) is one existing application-layer VoIP for creating, modifying, and terminating call sessions involving one or more users. Such sessions may include Internet telephone dialogs and sessions, multimedia distribution, multimedia conferences, and the like. In existing SIP domains, distributed proxy servers route requests to a user's current location, authenticate and authorize users for various services, implement provider call-routing policies, and provide various call features to users. Call invitation requests are used to create sessions, and carry session descriptions that allow callers and callees to agree on a set of compatible media types for accomplishing multi-party communications. SIP also provides a registration function for a user to subscribe to various call features, such as three-way calling. SIP registration functions also allow users to upload their current locations for use by proxy servers that receive such call requests for a user.
Similar to what has been encountered during the evolution of PSTNs, as new options are added to the suite of available call features in SIP, it becomes increasingly difficult to manage the behavioral complexity of new call features and their resulting interactions with existing call features.
Distributed feature composition (DFC) has been previously developed by certain of the inventors of the present application to contain this feature-interaction problem in PSTN environments. A description of DFC may be found in U.S. Pat. Nos. 6,404,878 and 6,160,883, both of which are assigned to the assignee of the present invention and incorporated herein by reference. DFC allows for the modification and addition of call features while minimizing unexpected call feature interference and system malfunctions. It is a virtual architecture within which a call feature is implemented by a small number of physical components, collectively called a feature box, that are added to a call route by featureless internal calls through the communications network and are connected by known PSTN network mechanisms. A customer call is handled by building a configuration of feature boxes that are dedicated to the appropriate call features assigned to the call in a predetermined order of priority.
Any new desired features are implemented in DFC by as small a number of new components as possible, preferably just one, along with predetermined rules for joining the new components. The architectural style of DFC is similar to dynamic pipe-and-filter technologies, where the feature boxes are like filters, and the internal featureless call connections between feature boxes are like pipes. DFC feature boxes are physically independent entities, each with its own state, sharing no state with other feature boxes and independent of the identities of its neighboring components. DFC feature boxes are also completely dedicated to an assigned call, and only become available to other calls when the assigned call is terminated or cancelled. This independence contributes significantly to the ability of DFC to manage feature interactions, however, requires a large number of physical components to accommodate a large network of users.
DFC architecture may not simply be incorporated into SIP frameworks. First, the systems are implemented in different domain environments having different component types and signaling protocols. The requirements for certain DFC and SIP hardware also conflict in certain areas of implementation. However, it would be beneficial if SIP could be improved to allow for the ready accommodation of new call features therein.
Third party service developments, such as Call Processing Language and SIP Common Gateway Interface, as well as a variety of distributed component architectures and feature interaction protocols, such as Software Engineering Research Library (SERL), Third Party Call Control (3PCC) and Application Server Component (ASC), have been proposed to improve VoIP performance. However, none has definitively addressed the feature interaction problem in SIP.